package com.service;


import com.mapper.NewsMapper;
import com.pojo.News;
import com.pojo.News1;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;


/*
 * @Author 陆微腾
 * @Description  该服务，是每日都需要更新的功能。
 *
 * 1、判断是否要更新。
 * 2、若需要更新，更新那几条。
 *
 * @Date: 2020/4/18
 **/
@Service
public class CrawlerUpdateServive {

    @Autowired
    private CrawlerService service;

    @Autowired
    private NewsMapper mapper;
    static ArrayList<String> urls = null;

    static {
        urls = new ArrayList<>();
        urls.add("http://nyncj.changde.gov.cn/zhdt/gzdt/cddt_");
        urls.add("http://nyncj.changde.gov.cn/ywgz/xczx_");
        urls.add("http://nyncj.changde.gov.cn/ywgz/nszd_");
        urls.add("http://nyncj.changde.gov.cn/ywgz/xdny_");
        urls.add("http://nyncj.changde.gov.cn/ywgz/zlaq_");
        urls.add("http://nyncj.changde.gov.cn/ywgz/snsd/snlt_");
        urls.add("http://nyncj.changde.gov.cn/ywgz/snsd/ldyl_");
    }

    // 判断是否需要更新,如果需要更新，那么更新几条


    public void isUpdate(int type) {
        // 查询 type 类型  第 1 条数据 降序排列
        News oneNews = mapper.findOne(type);
//        System.out.println("OneFind: " + oneNews);
        // 爬取 第一页的数据 。存入List 中
        String url = urls.get(type - 1) + "1";
        List<String> href = new ArrayList<>();
        service.getNewsUrl(href, url);
        int flag = 0;
        for (int i = 0; i < href.size(); i++) {
            if (oneNews.getContxturl().equals(href.get(i))) {
                flag = i;
                break;
            }
        }
        if (flag == 0) {
            System.out.println("无需更新");
        } else {
            for (int i = flag - 1; i >= 0; i--) {
                News1 news1 = service.crawlerNews(href.get(i));
                if (!news1.getTitle().isEmpty()) {
                    mapper.insert(news1);
                }
            }
        }


    }
}
